package TestExercises08;

//TCP通信练习5 ---上传文件(多线程版)

/*
想要服务器不停止，能接收很多用户上传的图片。
该怎么做呢?
提示:可以用循环或者多线程。
但是循环不合理，最优解法是(循环+多线程)改写
 */

import java.io.*;
import java.net.Socket;

//客户端（Client）
public class Test09 {
    public static void main(String[] args) throws IOException {

        //1、创建Socket对象
        Socket socket = new Socket("127.0.0.1", 30000);

        //2、读取本地文件中的数据，并写到服务器
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\工作\\工作\\src\\clientdir\\a.jpg"));
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        byte[] bytes = new byte[1024];
        int len;
        while ((len = bis.read(bytes)) != -1) {
            bos.write(bytes, 0, len);
        }

        //写出结束标志
        socket.shutdownOutput();

        //3、接收服务器回写的数据
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line = br.readLine();
        System.out.println(line);

        //4、释放资源
        socket.close();
    }
}
